package com.itheima.zhuanhuan;

import java.io.File;
import java.util.HashMap;

/*
统计一个文件夹中每种文件的个数并打印
统计 不同种类的个数
key  文件的类型
value count


 */
public class Test03 {

    public static void main(String[] args) {

        File file = new File("day12\\aaa");
        //参数 是map
        HashMap<String, Integer> map = new HashMap<>();
        fenxiDir(file, map);
        System.out.println(map);

    }

    //定义方法来统计
    //参数 文件夹  map<key 文件类型, value count>
    //返回值 不要了 数据添加到map
    public static void fenxiDir(File dir, HashMap<String, Integer> map) {
        //1.获取文件夹中的所有文件
        File[] files = dir.listFiles();
        //2.遍历文件数组
        for (File file : files) {
            //file
            ////3.判断是否是文件  删除
            if (file.isFile()) {
                //tongji
                String name = file.getName();//文件名.后缀名
                String[] split = name.split("\\.");//. 表示不了 需要转义  如果想表示. 需要\\.
                if (split.length == 2) {
                    String houzhui = split[1];
                    //判断 map中是否已经有了;
                    boolean flag = map.containsKey(houzhui);
                    //有了  获取出来+1
                    if (flag) {
                        Integer count = map.get(houzhui);
                        // count++;
                        map.put(houzhui, ++count);
                    } else {
                        //没有  把1放进去
                        map.put(houzhui, 1);
                    }
                }

            } else {
                ////4.是文件夹 递归
                fenxiDir(file, map);
            }
        }
    }
}
